#ifndef CARDPANEL_H
#define CARDPANEL_H

#include <QWidget>
#include <QPainter>
#include "Card.h"
#include "Player.h"


class CardPanel : public QWidget
{
    Q_OBJECT
public:
    explicit CardPanel(QWidget *parent = nullptr);

    // 设置显示的图片（正反面）和获取的函数
    void setImage(const QPixmap &front, const QPixmap &back);
    QPixmap image();

    //扑克牌显示的正反面
    void setFrontSide(bool flag);
    bool frontSide();

    //记录窗口是否被选中了
    void setSelected(bool flag);
    bool isSelected();

    //设置扑克牌的花色及点数
    void setCard(const Card &card);
    Card card();

    //扑克牌的所有者（左侧机器人，右侧机器人，玩家）
    void setOwner(Player* player);
    Player* owner();

    //模拟点击了扑克牌事件
    void clicked();

protected:
    void paintEvent(QPaintEvent *event);//绘制函数
    void mousePressEvent(QMouseEvent *event);

signals:
    void cardSelected(Qt::MouseButton button);
private:
    Card m_card;
    Player *m_owner = nullptr;
    QPixmap m_front;//保存正面图片
    QPixmap m_back;//保存背面图片
    bool m_isFront = true;//标记当前显示是否是正面
    bool m_isSelected = false;//标记当前扑克牌是否被选中
};

#endif // CARDPANEL_H
